﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ThiefRun.Util.Graph;

namespace ThiefRun.States
{
    public class Transition : Edge<Node<State>>
    {
        #region Constants
        // Constants
        #endregion Constants

        #region Properties
        // Properties
        public delegate bool Conditions(State caller);
        private Conditions conditions;
        #endregion Properties

        #region Computed Properties
        // Computed Properties
        public Conditions Condition { get { return conditions; } }
        #endregion

        #region Methods
        // Methods

        /// <summary>
        /// Initialize the Transition.
        /// </summary>
        public Transition(Node<State> left, Node<State> right, Conditions conditions) : base(left, right)
        {
            this.conditions = conditions;
        }
        #endregion Methods
    }
}
